#pragma once

#include<iostream>
#include<vector>
#include<deque>
#include<list>

namespace cp {
	template<class T,class Container = vector<T>>
	class queue
	{
	public:
		queue() = default;

		void push_back(const T& val)
		{
			_con.push_back(val);
		}

		void pop_back()
		{
			_con.pop_back();
		}

		size_t size()
		{
			return _con.size();
		}

		bool empty()
		{
			return _con.empty();
		}

		T& front() 
		{
			return _con.front();
		}

		T& back() 
		{
			return _con.back();
		}
	private:
		Container _con;
	};

}
